<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // try...catch...finally   JS异常捕获机制


    // 正常情况下 如果代码在执行过程中出现错误, 脚本将会终止,不在向后执行,并抛出错误原因
    // var a = 10;
    // var b = 20;
    // var c = A + b;
    // console.log(c);

    /*
    如果向在代码执行过程中, 对可能出现的错误(代码错误)进行捕获操作, 并可以对错误进行补救 -> try catch finally
    a. 如果某些代码执行过程中可能出现错误  -> 错误捕获  ->1.对错误进行补救  2. 不影响其他代码执行

    语法:

        try{
            尝试执行的代码段(可能出现的错误的代码)
        }catch(err){
            当错误发生时执行的代码段 (err 错误对象:包含错误信息)
        }finally{
            无论代码是否出错,都会执行的代码段   
        }

        try{} 不能单独使用, 配合 catch finally中至少一个


        注意: try...catch  只能捕获通过代码在执行过程中出现的错误  -> 不能直接捕获异步错误  (只能在异步代码执行时进行捕获操作)
    
    */


    // try {
    //     setTimeout(function () {
    //         var a = 10;
    //         var b = 20;
    //         var c = A + b;
    //         console.log(c);
    //     }, 1000)
    // } catch (err) {
    //     console.log("代码出现错误", err);
    // }

    // console.log("所有同步代码执行完毕");



    setTimeout(function () {
        try {
            var a = 10;
            var b = 20;
            var c = A + b;
            console.log(c);
        } catch (err) {
            console.log("代码出现错误", err);
        }

    }, 1000)



    console.log("所有同步代码执行完毕");







</script>

</html>